package com.deyuanyun.pic.ctrl.service;

import java.util.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.deyuanyun.pic.business.controller.dto.PipeLineNewTaskVO;
import com.deyuanyun.pic.ctrl.controller.dto.ExinspTaskExpandDTO;
import com.deyuanyun.pic.ctrl.controller.vo.ExinspTaskVO;
import com.deyuanyun.pic.ctrl.domain.ExinspTask;

/**
 *  外检项目service
 *  @author axiao(xj08.dream@gmail.com)
 *  @date 2016-09-22
 *  @version 1.0
 *  Histroy: [修改人][时间][描述]
 */
public interface ExternalInspProjectService {

    /**
     * 查询外检项目列表
     * @param exinspTaskVO
     * @return
     * @author axiao(xj08.dream@gmail.com)
     * @date 2016-09-22
     */
    public List<ExinspTaskExpandDTO> queryExinspTasks(ExinspTaskVO exinspTaskVO);

    /**
     * 逻辑删除没有导入数据的外检项目
     * @param ids
     * @return 受影响的行数
     * @author axiao(xj08.dream@gmail.com)
     * @date 2016-09-23
     */
    public int updateDeleted(@Param("ids") String ... ids);

    /**
     * 根据id获取到外检项目信息
     * @param id
     * @return 
     * @author axiao(xj08.dream@gmail.com)
     * @date 2016-09-23
     */
    public ExinspTaskExpandDTO getInfoById(String id);

    /**
     * 更新或者新建外检项目
     * @param exinspTaskExpandDTO
     * @return 
     * @author axiao(xj08.dream@gmail.com)
     * @date 2016-09-23
     */
    public void createOrUpdate(ExinspTaskExpandDTO exinspTaskExpandDTO);
    
    /**
     * 查询最新的外检任务
     * @param pipeLineId
     * @return
     */
    List<PipeLineNewTaskVO> queryNewExternalTaskMerge(String pipeLineId);
    
    /**
     * 查询指定日期范围内最新的外检任务
     * @param pipeLineId
     * @return
     */
    List<PipeLineNewTaskVO> queryNewExternalTaskMerge(String pipeLineId,Date beginDate,Date endDate);
    

    /**
     * 查询指定日期附近的任务
     * 
     * @param pipeLineId
     * @param testDate
     * @param isAgo 是否为指定日期前
     * @return
     */
    List<PipeLineNewTaskVO> queryNagmExternalTaskMerge(String pipeLineId,Date testDate,Boolean isAgo);
    

    /**
     * 根据管道、起点、终点查询任务
     * 
     * @param pipeLine
     * @param start
     * @param end
     * @return
     */
    List<ExinspTask> queryExinspTask(String pipeLine,Long start,Long end);
    
}
